Mobile and non-mobile devices are known that employ software applications that may interface with one or more operating systems and that invoke security code in a way that may be controlled by security policy data so that certain applications may have certain access to various operations of the system, including, but not limited to, other software applications, processes, hardware devices, subsystems or any other suitable process. Some applications are trusted applications in that they may be digitally signed by a trusted authority or source or may be trusted via some other trust relationship.
With the increase in online transactions and interactions, it is increasingly important to provide protections for a user that employs varying applications being run on the device. Trusted applications may be those, for example, that are downloaded over the web that the user has designated as trusted and other executables that may be launched that are trusted. An untrusted application may be one, for example, that has limited access to the operating system of the device or other applications because it is unsigned and is downloaded over the web, such as Java applets, javascript, or any other components.
Network attackers can employ graphical spoofing techniques wherein the display on the device may present a user with a graphical display (e.g. windows) that appears to be authentic, but is in fact a spoof interface thereby tricking the user into entering sensitive data such as bank account information or any other sensitive information. In some cases the spoofing application may redirect a user to another website and the browser on the user's device may not know that it is an improper site. Although browsers effectively own the frames or windows that are being displayed, web servers typically send information to the browser that controls filling the window and as such spoofing applications attempt to emulate the browser interfaces. For example, graphical user interface (GUI) buttons may appear to look proper but when the user selects them the buttons perform an unexpected function.
In one prior-art technique that attempts to defeat a spoofing application, the web browser uses two different window colours to distinguish trusted browser windows from those containing server-provided content. However, this does not protect against a rogue application creating a graphical representation of a window with a border of the trusted colour. A refinement of the idea also known in the art is for the browser to create a trusted reference window in addition to those it would normally display. The browser then changes the border colour used for all trusted windows at random intervals. The user can then recognize trusted windows by the fact that their borders change in sync with those of the trusted reference window. However, this technique does not defend against chromeless window attacks. Chromeless windows have no window borders, only the inside content of the window is shown. For example, a rogue application may overlay a chromeless window overtop of the contents of a trusted window with a randomly changing border. Because the border will still flash as expected, the user will be tricked into believing that the chromeless window content is displayed inside the trusted window.
In windows based operating systems that employ window graphical user interfaces, it is also known for the operating system to be able to determine the order in which windows overlap (sometimes referred to as the Z order). However such operating systems do not always notify a window that it has become a background window or if an active or topmost window has been covered. For example, the O.S. may send a message to an application when a previously hidden part of a window becomes visible, but not when previously visible parts of the window become hidden. Also, an operating system can notify a graphical application when it is uncovered because some or all of the newly exposed application window may need to be repainted.
Accordingly, a need exists for overcoming one or more of the above drawbacks.